<?php

/**
 * Description of GrupoServicios
 *
 * @author  Mariano Renkine
 * @author  Fernando Arau
 */
class GrupoServicios extends Servicios
{

  function agregar(GrupoDTO $GrupoDTO)
  {
    $repoGrupo = new RepoGrupo();
    $grupo = $this->deDTO($GrupoDTO);
    $grupo->setUsuario($this->ObtenerNombreUsuarioSesion());
    return $repoGrupo->agregar($grupo);
  }

  function modificar(GrupoDTO $GrupoDTO)
  {
    $repoGrupo = new RepoGrupo();
    $grupo = $this->deDTO($GrupoDTO);
    $grupo->setUsuario($this->ObtenerNombreUsuarioSesion());
    return $repoGrupo->modificar($grupo);
  }
  function eliminar($id)
  {
    $repoGrupo = new RepoGrupo();
    return $repoGrupo->eliminarGrupo($id);
  }
  

  function listar()
  {
    $repoGrupo = new RepoGrupo();
    $grupos = $repoGrupo->listar();
    $gruposDTO = null;
    foreach ($grupos as $grupo)
    {
      $gruposDTO[] = $this->aDTO($grupo);
    }
    return $gruposDTO;
  }

  function buscar($id)
  {
    $repoGrupo = new RepoGrupo();
    return $this->aDTO($repoGrupo->buscar($id));
  }

  function listarIdName()
  {
    $resultado = "";
    $grupos = $this->listarHabilitados();
    if ($grupos != null)
    {
      for ($i = 0; $i < count($grupos); $i++)
      {
        $resultado[$i]["id"] = $grupos[$i]->getId();
        $resultado[$i]["name"] = $grupos[$i]->getNombre();
      }
    } else
    {
      $resultado[0]["id"] = "";
      $resultado[0]["name"] = "";
    }
    return $resultado;
  }

  function listarHabilitados()
  {
    $repoGrupo = new RepoGrupo();
    $grupos = $repoGrupo->listarHabilitados();
    $gruposDTO = "";
    if ($grupos != null)
    {
      foreach ($grupos as $grupo)
      {
        $gruposDTO[] = $this->aDTO($grupo);
      }
    }
    return $gruposDTO;
  }

  function aDTO(Grupo $grupo)
  {
    $grupoDTO = new GrupoDTO();
    $grupoDTO->setId($grupo->getId());
    $grupoDTO->setNombre($grupo->getNombre());
    $grupoDTO->setPermisos($grupo->getPermiso());
    $grupoDTO->setUsuario($grupo->getUsuario());
    return $grupoDTO;
  }

  function deDTO(GrupoDTO $grupoDTO)
  {
    $grupo = new Grupo();
    $grupo->setId($grupoDTO->getId());
    $grupo->setNombre($grupoDTO->getNombre());
    $permisoSvc = new PermisoServicios();
    $permiso = $permisoSvc->deDTO($grupoDTO->getPermisos());
    $grupo->setPermiso($permiso);
    $grupo->setUsuario($grupoDTO->getUsuario());
    return $grupo;
  }
  
  function mostrarTerapeutasByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaTerapeutas() || $permiso->getBajaTerapeutas() || $permiso->getModTerapeutas()){
          return 1;
      }
  }
  
  function mostrarHorariosTerapeutasByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAdminHorariosTerapeutas()){
          return 1;
      }
  }
  
  function mostrarGabinetesByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaGabinetes() || $permiso->getBajaGabinetes() || $permiso->getModGabinetes()){
          return 1;
      }
  }
  
  function mostrarTratamientosByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaTratamientos() || $permiso->getBajaTratamientos() || $permiso->getModTratamientos()){
          return 1;
      }
  }
  
  function mostrarUsuariosByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaUsuarios() || $permiso->getBajaUsuarios() || $permiso->getModUsuarios()){
          return 1;
      }
  }
  
  function mostrarGruposByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaGrupos() || $permiso->getBajaGrupos() || $permiso->getModGrupos()){
          return 1;
      }
  }
  
  function mostrarReservasByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaReservas() || $permiso->getBajaReservas() || $permiso->getModReservas()){
          return 1;
      }
  }
  
  function mostrarProductosByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaProductos() || $permiso->getBajaProductos() || $permiso->getModProductos()){
          return 1;
      }
  }
  
  function mostrarPermisosTemporalesByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaPermisosTemporales() || $permiso->getBajaPermisosTemporales() || $permiso->getModPermisosTemporales()){
          return 1;
      }
  }
  
  function mostrarBloqueosGabinetesByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaBloqueosGabinete() || $permiso->getBajaBloqueosGabinete() || $permiso->getModBloqueosGabinete()){
          return 1;
      }
  }

  function mostrarDescuentosByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaDescuentos() || $permiso->getBajaDescuentos() || $permiso->getModDescuentos()){
          return 1;
      }
  }

  function mostrarComprobantesByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAdminComprobantes()){
          return 1;
      }
  }
  
  function mostrarReportesByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAdminReportes()){
          return 1;
      }
  }
  
  function mostrarClientesHotelByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAdminClientesHotel()){
          return 1;
      }
  }
  
  function mostrarClientesEventualesByGrupoId($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaClientesEventuales() || $permiso->getBajaClientesEventuales() || $permiso->getModClientesEventuales()){
          return 1;
      }
  }
  
  function puedeAgregarGrupo($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaGrupos()){
          return 1;
      }
  }
  
  function puedeModificarGrupo($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getModGrupos()){
          return 1;
      }
  }
  
  function puedeEliminarGrupo($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getBajaGrupos()){
          return 1;
      }
  }
  
  function puedeAgregarTerapeuta($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaTerapeutas()){
          return 1;
      }
  }
  
  function puedeModificarTerapeuta($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getModTerapeutas()){
          return 1;
      }
  }
  
  function puedeEliminarTerapeuta($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getBajaTerapeutas()){
          return 1;
      }
  }
  
  function puedeAgregarProductos($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaProductos()){
          return 1;
      }
  }
  
  function puedeModificarProductos($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getModProductos()){
          return 1;
      }
  }
  
  function puedeEliminarProductos($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getBajaProductos()){
          return 1;
      }
  }
  
  function puedeAgregarGabinetes($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaGabinetes()){
          return 1;
      }
  }
  
  function puedeModificarGabinetes($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getModGabinetes()){
          return 1;
      }
  }
  
  function puedeEliminarGabinetes($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getBajaGabinetes()){
          return 1;
      }
  }
  
  function puedeAgregarBloqueosGabinete($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaBloqueosGabinete()){
          return 1;
      }
  }
  
  function puedeModificarBloqueosGabinete($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getModBloqueosGabinete()){
          return 1;
      }
  }
  
  function puedeEliminarBloqueosGabinete($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getBajaBloqueosGabinete()){
          return 1;
      }
  }
  
  function puedeAgregarTratamientos($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaTratamientos()){
          return 1;
      }
  }
  
  function puedeModificarTratamientos($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getModTratamientos()){
          return 1;
      }
  }
  
  function puedeEliminarTratamientos($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getBajaTratamientos()){
          return 1;
      }
  }
  
  function puedeAgregarUsuarios($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaUsuarios()){
          return 1;
      }
  }
  
  function puedeModificarUsuarios($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getModUsuarios()){
          return 1;
      }
  }
  
  function puedeEliminarUsuarios($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getBajaUsuarios()){
          return 1;
      }
  }
  
  function puedeAgregarPermisosTemporales($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaPermisosTemporales()){
          return 1;
      }
  }
  
  function puedeModificarPermisosTemporales($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getModPermisosTemporales()){
          return 1;
      }
  }
  
  function puedeEliminarPermisosTemporales($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getBajaPermisosTemporales()){
          return 1;
      }
  }
  
  function puedeAgregarDescuentos($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaDescuentos()){
          return 1;
      }
  }
  
  function puedeModificarDescuentos($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getModDescuentos()){
          return 1;
      }
  }
  
  function puedeEliminarDescuentos($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getBajaDescuentos()){
          return 1;
      }
  }
  
  function puedeAgregarReservas($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaReservas()){
          return 1;
      }
  }
  
  function puedeModificarReservas($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getModReservas()){
          return 1;
      }
  }
  
  function puedeEliminarReservas($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getBajaReservas()){
          return 1;
      }
  }
  
  function puedeAgregarClientesEventuales($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getAltaClientesEventuales()){
          return 1;
      }
  }
  
  function puedeModificarClientesEventuales($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getModClientesEventuales()){
          return 1;
      }
  }
  
  function puedeEliminarClientesEventuales($grupoId){
      $grupoServicios = new GrupoServicios();
      $grupo = $grupoServicios->buscar($grupoId);
      $permiso = $grupo->getPermisos();
      if ($permiso->getBajaClientesEventuales()){
          return 1;
      }
  }

}

?>
